MySQL ログ
概要
MySQLが扱うログを網羅的に理解していこう!!
hr.icon
エラーログ(error log)
サーバーの起動・停止情報、及び、エラー内容を記録
https://proengineer.internous.co.jp/topics/wp-content/uploads/2017/02/column_image7002_07.jpg
一般クエリログ(general query log)
実行したSQLクエリの履歴が全て記録されていくログ。
全クエリを記録するのでファイルサイズが大きくなりやすい。
ただ、サービス影響が大きく出るとかで無い限りは、有効になってることが多い。
https://proengineer.internous.co.jp/topics/wp-content/uploads/2017/02/column_image7002_03.jpg
一般クエリーログは、mysqld の実行内容の一般的な記録です。 サーバーは、クライアントが接続または接続解除したときに情報をこのログに書き込み、クライアントから受け取った各 SQL ステートメントをログに記録します。 一般クエリーログは、クライアント側でエラーが疑われるとき、クライアントが mysqld に送信した内容を正確に知りたい場合に非常に役立つことがあります。
スロークエリログ(slow query log)
処理に時間がかかったSQLクエリを知らせてくれるログ。
具体的にはlong_query_timeで設定してる時間(秒)よりも長くかかったクエリを記録する。
https://proengineer.internous.co.jp/topics/wp-content/uploads/2017/02/column_image7002_04.jpg
監査ログ(audit log)eiifccvjtcuchkfddkdcvrcejiukerdhdvhtrgdndllr
監査のために「誰が」「どのDBに」「どういう処理をしたか」的なことを記録するログ。
誰のどういう処理を記録するかなどを細かく設定できる。
レプリケーション関連ログ
hr.icon
バイナリログ(binary log)
ちなみにバックアップからの復旧にも使える
リレーログ(relley log)
レプリケーションのためにスレーブ側で作成されるログ
SQLスレッドに消去される
各ログの保持期間・ライフサイクルなど
hr.icon
ログ関連で覚えておくといいTips
hr.icon
基本的に最初から有効になってるログはエラーログのみで、一般クエリログ、スローログ、監査ログは無効になってる
一般クエリログ、スローログを有効にするためには、mysqlのそれぞれの設定値を変える必要がある。
監査ログを有効化するためにはプラグインを利用する必要がある。
一般クエリログ、スロークエリログに関しては、ファイル出力か、テーブル出力か、両方か、選べたりする
テーブル出力の場合はmysqlデータベースの、general_logテーブル、slow_logテーブルに入る。
このファイルかテーブルかを選択するためのパラメータはlog_output